package pessoal;

import ferramentas.Query;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

/**
 *
 * @author ciar
 */
public class Usuario {

    private String cpf;
    private String nome;
    private String sobrenome;
    private Date nascimento;
    private char sexo;
    private boolean ensinoMedio;
    private boolean graduacao;
    private boolean especializacao;
    private boolean mestrado;
    private boolean doutorado;
    private String email;
    private String ddd;
    private String telefone;
    private String senha;
    private Endereco endereco;

    public Usuario() {
    }

    public Usuario(String cpf, String nome, String sobrenome, String email) {
        this.cpf = cpf;
        this.nome = nome;
        this.sobrenome = sobrenome;
        this.email = email;
    }

    public Usuario(String cpf, String nome, String sobrenome, Date nascimento, char sexo, boolean ensinoMedio, boolean graduacao, boolean especializacao, boolean mestrado, boolean doutorado, String email, String ddd, String telefone, String senha, Endereco endereco) {
        this.cpf = cpf;
        this.nome = nome;
        this.nascimento = nascimento;
        this.sexo = sexo;
        this.ensinoMedio = ensinoMedio;
        this.graduacao = graduacao;
        this.especializacao = especializacao;
        this.mestrado = mestrado;
        this.doutorado = doutorado;
        this.email = email;
        this.ddd = ddd;
        this.telefone = telefone;
        this.senha = senha;
        this.endereco = endereco;
        this.sobrenome = sobrenome;
    }

    public Usuario(String cpf, String senha) {
        this.cpf = cpf;
        this.senha = senha;
    }

    public String getCpf() {
        return cpf;
    }

    public String getDdd() {
        return ddd;
    }

    public boolean getDoutorado() {
        return doutorado;
    }

    public String getEmail() {
        return email;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public boolean getEnsinoMedio() {
        return ensinoMedio;
    }

    public String getSobrenome() {
        return sobrenome;
    }

    public boolean getEspecializacao() {
        return especializacao;
    }

    public boolean getGraduacao() {
        return graduacao;
    }

    public boolean getMestrado() {
        return mestrado;
    }

    public Date getNascimento() {
        return nascimento;
    }

    public String getNome() {
        return nome;
    }

    public String getSenha() {
        return senha;
    }

    public char getSexo() {
        return sexo;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public boolean isDoutorado() {
        return doutorado;
    }

    public void setDdd(String ddd) {
        this.ddd = ddd;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public void setNascimento(Date nascimento) {
        this.nascimento = nascimento;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public void setSexo(char sexo) {
        this.sexo = sexo;
    }

    public void setSobrenome(String sobrenome) {
        this.sobrenome = sobrenome;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public void setDoutorado(boolean doutorado) {
        this.doutorado = doutorado;
    }

    public boolean isEnsinoMedio() {
        return ensinoMedio;
    }

    public void setEnsinoMedio(boolean ensinoMedio) {
        this.ensinoMedio = ensinoMedio;
    }

    public boolean isEspecializacao() {
        return especializacao;
    }

    public void setEspecializacao(boolean especializacao) {
        this.especializacao = especializacao;
    }

    public boolean isGraduacao() {
        return graduacao;
    }

    public void setGraduacao(boolean graduacao) {
        this.graduacao = graduacao;
    }

    public boolean isMestrado() {
        return mestrado;
    }

    public void setMestrado(boolean mestrado) {
        this.mestrado = mestrado;
    }
    
    public List<Demanda> getDemandas() throws SQLException{
        Query q = new Query();
        return q.getDemandas(this);
    }
    
    public List<Demanda> getDemandas(int ano) throws SQLException{
        Query q = new Query();
        return q.getDemandas(this, ano);
    }
    
    public void atualizarDemandas(List<Demanda> demandas) throws SQLException{
        Query q = new Query();
        for(Demanda demanda:demandas){
            if(demanda.getId() != 0){ // já existe
                q.atualizaDemanda(demanda);
            }else{ // não existe
                q.insereDemanda(demanda);
            }
        }
    }
}
